<template>
  <div class="row">
    <!-- 展示用户列表 -->
    <div v-show="info.users.length" class="card" v-for="user in info.users" :key="user.login">
      <a :href="user.html_url" target="_blank">
        <img :src="user.avatar_url" style='width: 100px'/>
      </a>
      <p class="card-text">{{user.login}}</p>
    </div>

    <!-- 展示欢迎词 -->
    <h1 v-show="info.isH1">请输入搜索的用户名</h1>
    <!-- 展示加载中 -->
    <img v-show="info.isImg" class="loading" src="../assets/loading.gif" alt="loading...">
    <!-- 展示错误信息 -->
    <h1 v-show="info.errMsg">请求出错了，错误信息：{{info.errMsg}}</h1>
  </div>
</template>

<script>
export default {
  name:'List',
  data(){
    return {
      info:{
        users:[],
        isImg:false,
        isH1:true,
        errMsg:''
      }
    }
  },
  methods: {
    getUsers(dataObj){
      console.log(dataObj);
      // 使用ES6语法将info与dataObj拼接
      // 当info有的内容，dataObj有 则会替换
      // 否则info的原本内容将不会改变
      // 这样的好处是传过来的dataObj实参可以不在意顺序和个数
      this.info = {...this.info,...dataObj}
    }
  },
  mounted() {
    this.$bus.$on('getUsers',this.getUsers);
  },
}
</script>

<style scoped>
 .album {
  min-height: 50rem; /* Can be removed; just added for demo purposes */
  padding-top: 3rem;
  padding-bottom: 3rem;
  background-color: #f7f7f7;
}

.card {
  float: left;
  width: 33.333%;
  padding: .75rem;
  margin-bottom: 2rem;
  border: 1px solid #efefef;
  text-align: center;
}

.card > img {
  margin-bottom: .75rem;
  border-radius: 100px;
}

.card-text {
  font-size: 85%;
}

.loading{
  width: 500px;
  display: block;
  margin: 50px auto;
}

h1{
  text-align: center;
  margin-top: 100px;
}
</style>